#pragma once
#include "Mode.h"
#include "View.h"
class CActorPickInfo;
class CGameActor;
class CMousePointer;
class CRenderObject;
class CWorld;
class UINameBalloonText;
class UIPlayerGage;
class UIWindow;


class CGameMode : public CMode
{
	struct vtable_t // const CGameMode::`vftable'
	{
		void* (CGameMode::* scalar_deleting_destructor)(unsigned int __flags);
		void (CGameMode::* OnInit)(const char* modeName);
		int (CGameMode::* OnRun)(void);
		void (CGameMode::* OnExit)(void);
		void (CGameMode::* OnUpdate)(void);
		int (CGameMode::* SendMsg)(int messageId, int val1, int val2, int val3);
		void (CGameMode::* OnChangeState)(int state);
	};

	/* this+0x0   */ public: //CMode baseclass_0;
	/* this+0x40  */ private: int m_areaLeft;
	/* this+0x44  */ private: int m_areaRight;
	/* this+0x48  */ private: int m_areaTop;
	/* this+0x4C  */ private: int m_areaBottom;
	/* this+0x50  */ private: char m_rswName[40];
	/* this+0x78  */ private: char m_minimapBmpName[60];
	/* this+0xB4  */ private: CWorld* m_world;
	/* this+0xB8  */ private: CView* m_view;
	/* this+0xBC  */ private: CMousePointer* m_mousePointer;
	/* this+0xC0  */ private: unsigned long m_leftBtnClickTick;
	/* static     */ private: static hook_val<unsigned long> m_lastLockOnPcGid;
	/* static     */ private: static hook_val<unsigned long> m_dwOldAutoFollowTime;
	/* static     */ private: static hook_val<unsigned long> m_dwOldDisappearTime;
	/* this+0xC4  */ private: int m_oldMouseX;
	/* this+0xC8  */ private: int m_oldMouseY;
	/* this+0xCC  */ private: int m_rBtnClickX;
	/* this+0xD0  */ private: int m_rBtnClickY;
	/* this+0xD4  */ private: unsigned long m_lastPcGid;
	/* this+0xD8  */ private: unsigned long m_lastMonGid;
	/* this+0xDC  */ private: unsigned long m_lastLockOnMonGid;
	/* this+0xE0  */ private: int m_isAutoMoveClickOn;
	/* this+0xE4  */ private: int m_isWaitingWhisperSetting;
	/* this+0xE8  */ private: int m_isWaitingEnterRoom;
	/* this+0xEC  */ private: int m_isWaitingAddExchangeItem;
	/* this+0xF0  */ private: unsigned long m_waitingWearEquipAck;
	/* this+0xF4  */ private: unsigned long m_waitingTakeoffEquipAck;
	/* this+0xF8  */ private: int m_isReqUpgradeSkillLevel;
	/* this+0xFC  */ private: int m_exchangeItemCnt;
	/* this+0x100 */ private: int m_isWaitingCancelExchangeItem;
	/* this+0x104 */ private: mystd::string m_refuseWhisperName;
	/* this+0x114 */ private: mystd::string m_streamFileName;
	/* this+0x124 */ private: mystd::string m_lastExchangeCharacterName;
	/* this+0x134 */ private: mystd::map<unsigned long,NamePair> m_actorNameList;
	/* this+0x144 */ private: mystd::map<unsigned long,unsigned long> m_actorNameReqTimer;
	/* this+0x154 */ private: mystd::map<unsigned long,NamePair> m_actorNameListByGID;
	/* this+0x164 */ private: mystd::map<unsigned long,unsigned long> m_actorNameByGIDReqTimer;
	/* this+0x174 */ private: mystd::map<unsigned long,int> m_guildMemberStatusCache;
	/* this+0x184 */ private: mystd::map<unsigned long,CellPos> m_actorPosList;
	/* this+0x194 */ private: mystd::list<unsigned long> m_pickupReqItemNaidList;
	/* this+0x1A0 */ private: mystd::map<unsigned long,unsigned long> m_aidList;
	/* this+0x1B0 */ private: mystd::map<unsigned long,ColorCellPos> m_partyPosList;
	/* this+0x1C0 */ private: mystd::map<unsigned long,ColorCellPos> m_guildPosList;
	/* this+0x1D0 */ private: mystd::map<unsigned long,ColorCellPos2> m_compassPosList;
	/* this+0x1E0 */ private: mystd::vector<int> m_menuIdList;
	/* this+0x1F0 */ private: mystd::list<unsigned long> m_visibleTrapList;
	/* this+0x1FC */ private: mystd::list<unsigned long> m_emblemReqGdidQueue;
	/* this+0x208 */ private: unsigned long m_lastEmblemReqTick;
	/* this+0x20C */ private: unsigned long m_lastNameWaitingListTick;
	/* this+0x210 */ private: mystd::vector<PLAY_WAVE_INFO> m_playWaveList;
	/* this+0x220 */ private: mystd::string m_lastWhisperMenuCharacterName;
	/* this+0x230 */ private: mystd::string m_lastWhisper;
	/* this+0x240 */ private: mystd::string m_lastWhisperName;
	/* this+0x250 */ private: int m_noMove;
	/* this+0x254 */ private: unsigned long m_noMoveStartTick;
	/* this+0x258 */ private: int m_isOnQuest;
	/* this+0x25C */ private: int m_isPlayerDead;
	/* this+0x260 */ private: int m_canRotateView;
	/* this+0x264 */ private: int m_receiveSyneRequestTime;
	/* this+0x268 */ private: unsigned long m_syncRequestTime;
	/* this+0x26C */ private: unsigned long m_usedCachesUnloadTick;
	/* this+0x270 */ private: unsigned long m_reqEmotionTick;
	/* this+0x274 */ private: unsigned long m_reqTickChatRoom;
	/* this+0x278 */ private: unsigned long m_reqTickMerchantShop;
	/* this+0x27C */ private: int m_isReqEmotion;
	/* this+0x280 */ private: float m_fixedLongitude;
	/* this+0x284 */ private: unsigned long m_lastCouplePacketAid;
	/* this+0x288 */ private: unsigned long m_lastCouplePacketGid;
	/* this+0x28C */ private: char m_CoupleName[24];
	/* this+0x2A4 */ private: UINameBalloonText* m_nameBalloon;
	/* this+0x2A8 */ private: UINameBalloonText* m_targetNameBalloon;
	/* this+0x2AC */ private: UITransBalloonText* m_broadcastBalloon;
	/* this+0x2B0 */ private: UIPlayerGage* m_playerGage;
	/* this+0x2B4 */ private: UITransBalloonText* m_skillNameBalloon;
	/* this+0x2B8 */ private: UITransBalloonText* m_skillMsgBalloon;
	/* this+0x2BC */ private: UITransBalloonText* m_skillUsedMsgBalloon;
	/* this+0x2C0 */ private: unsigned long m_skillUsedTick;
	/* this+0x2C4 */ private: unsigned long m_broadCastTick;
	/* this+0x2C8 */ private: int m_nameDisplayed;
	/* this+0x2CC */ private: int m_nameDisplayed2;
	/* this+0x2D0 */ private: int m_waitingUseItemAck;
	/* this+0x2D4 */ private: int m_waitingItemThrowAck;
	/* this+0x2D8 */ private: int m_waitingReqStatusAck;
	/* this+0x2DC */ private: unsigned long m_nameActorAid;
	/* this+0x2E0 */ private: unsigned long m_lastNaid;
	/* this+0x2E4 */ private: unsigned long m_menuTargetAID;
	/* this+0x2E8 */ private: int m_nameBalloonWidth;
	/* this+0x2EC */ private: int m_nameBalloonHeight;
	/* this+0x2F0 */ private: int m_dragType;
	/* this+0x2F4 */ private: DRAG_INFO m_dragInfo;
	/* this+0x35C */ private: struct ChatRoomInfo m_lastChatroomInfo;
	/* this+0x38C */ private: struct SKILL_USE_INFO m_skillUseInfo;
	/* this+0x39C */ private: struct SHOW_IMAGE_INFO m_showImageInfo;
	/* this+0x3B0 */ private: mystd::string m_lastChat;
	/* this+0x3C0 */ private: int m_sameChatRepeatCnt;
	/* this+0x3C4 */ private: int m_numNotifyTime;
	/* this+0x3C8 */ private: int m_isCheckGndAlpha;
	/* this+0x3CC */ private: int m_lastCardItemIndex;
	/* this+0x3D0 */ private: int m_SkillBallonSkillId;
	/* this+0x3D4 */ private: unsigned long m_nameBalloonType;
	/* this+0x3D8 */ private: unsigned long m_showTimeStartTick;
	/* this+0x3DC */ private: int m_recordChatNum;
	/* this+0x3E0 */ private: mystd::string m_recordChat[11];
	/* this+0x490 */ private: unsigned long m_recordChatTime[11];
	/* this+0x4BC */ private: int m_strikeNum;
	/* this+0x4C0 */ private: unsigned long m_strikeTime[3];
	/* this+0x4CC */ private: unsigned long m_doritime[6];
	/* this+0x4E4 */ private: int m_isCtrlLock;
	/* this+0x4E8 */ private: int m_isUseYgdrasil;
	/* this+0x4EC */ private: int m_isMakeYgdrasil;
	/* this+0x4F0 */ private: int m_autoSaveChatCnt;

	public: CGameMode::CGameMode(void);
	public: virtual CGameMode::~CGameMode(void);
	public: virtual void CGameMode::OnInit(const char* modeName);
	public: virtual int CGameMode::OnRun(void);
	public: virtual void CGameMode::OnExit(void);
	public: virtual void CGameMode::OnUpdate(void);
	public: virtual int CGameMode::SendMsg(int messageId, int val1, int val2, int val3);
	public: CWorld* CGameMode::GetWorld(void);
	public: CView* CGameMode::GetView(void);
	public: void CGameMode::ChatDori(void);
	public: void CGameMode::Initialize(void);
	public: void CGameMode::MakeFog(int fogOn);
	//public: void CGameMode::PlayBGM();
	//public: void CGameMode::SetCheckGndAlpha();
	public: void CGameMode::SetCamera(void);
	public: void CGameMode::SaveCamera(void);
	public: void CGameMode::PushGameObject(CGameObject* gameObject);
	public: void CGameMode::RemoveGameActorAllAndMake(void);
	public: void CGameMode::MakeMousePointer(vector2d& pos);
	public: void CGameMode::MakeMenu(CActorPickInfo* actorInfo, int processType);
	public: void CGameMode::ProcessMouseSnap(CActorPickInfo* actorInfo, int processType);
	public: void CGameMode::ProcessWheel(int processType);
	public: void CGameMode::ProcessRBtn(void);
	public: int CGameMode::ProcessGroundPick(int processType);
	//public: void CGameMode::ProceedAttack(unsigned long, int);
	public: bool CGameMode::AttackSkillOverWeightMessage(void);
	//public: void CGameMode::UnloadRarelyUsedCaches();
	public: void CGameMode::ProcessReqEmblem(void);
	public: void CGameMode::ProcessNameWaitingTimer(void);
	public: void CGameMode::ProcessPeriodicalJobs(void);
	public: void CGameMode::GetServerCoor(float cx, float cz, int& sx, int& sy, int& cellX, int& cellY);
	public: void CGameMode::GetServerCoor(float cx, float cz, int& sx, int& sy);
	public: void CGameMode::GetClientCoor(int sx, int sy, int subX, int subY, float& cx, float& cz);
	public: void CGameMode::GetClientCoor(int sx, int sy, float& cx, float& cz);
	//public: void CGameMode::ConvertToNumCellClose(int &, int &, int &, int &, int);
	public: void CGameMode::ConvertToNoRedCell(int& sx, int& sy, int& dx, int& dy);
	public: void CGameMode::ConvertToNumCellCloseAndFindNoRedCell(float x1, float y1, float x2, float y2, int& dx, int& dy, int numCell);
	public: bool CGameMode::IsInsideCell(int& sx, int& sy, int& dx, int& dy, int numCell);
	public: bool CGameMode::IsRedCell(int x, int y);
	//public: int CGameMode::GetCellFlag(int, int);
	public: bool CGameMode::IsValidCell(int x, int y);
	public: bool CGameMode::CanFindPath(int sx, int sy, int cellX, int cellY, int dx, int dy);
	public: bool CGameMode::GetClosestValidCell(int& dx, int& dy);
	public: bool CGameMode::IsRegisterCell(int x, int y);
	//public: void CGameMode::MakeGroundMousePointer();
	public: void CGameMode::ShowMousePointer(float cx, float cy, int color);
	public: void CGameMode::HideMousePointer(int time);
	//public: void CGameMode::SynchronizeTimeWithServer(unsigned char);
	public: void CGameMode::ProcessInput(void);
	public: bool CGameMode::GetGroundAttrPos(int& dx, int& dy);
	//public: void RecalcAveragePingTime(unsigned long);
	//public: int CGameMode::ProcessObjClick(CActorPickInfo*, int);
	//public: const struct NamePair & CGameMode::GetNullNamePair();
	//public: unsigned long CGameMode::GetActorNameRequestTimer(unsigned long);
	public: void CGameMode::RemoveActorNameRequestTimer(unsigned long aid);
	public: const NamePair& CGameMode::GetActorName(unsigned long aid);
	public: void CGameMode::RequestActorName(unsigned long aid);
	//public: unsigned long CGameMode::GetActorNameByGIDRequestTimer(unsigned long);
	//public: void CGameMode::RemoveActorNameByGIDRequestTimer(unsigned long);
	public: const NamePair& CGameMode::GetActorNameByGID(unsigned long gid);
	//public: void CGameMode::RequestActorNameByGID(unsigned long);
	//public: void CGameMode::CheckGuildMemberStatusCache(unsigned long, const struct NamePair &);
	//public: unsigned long CGameMode::GetActorNameColor(int, unsigned long);
	public: void CGameMode::MakeNameBalloon(unsigned long aid);
	public: void CGameMode::MakeActorNameBalloon(CGameActor* theActor);
	//public: void CGameMode::MakeAttackedActorNameBalloon(CGameActor*);
	public: void CGameMode::ProcessNameBalloon(void);
	//public: CGameActor* CGameMode::MakeGameActor(int);
	public: CGameActor* CGameMode::NewNpc(int job);
	public: void CGameMode::PlaceEffect(vector3d* pos, int effectId, int lastTime, int F1);
	//public: void CGameMode::MakeBlowEffect(float, float, float);
	public: void CGameMode::MakeArrowEffect(vector3d& sPos, unsigned long targetGid, float hideTime, int job);
	//public: void CGameMode::MakeArrowEffectPos(struct vector3d &, struct vector3d &, float);
	public: void CGameMode::MakeMandraAttackEffect(unsigned long targetGid, int job, float hideTime);
	public: void CGameMode::MakeCorpse(float cx, float cy, float cz, const char* actName, const char* sprName, int action, int motion, float roty);
	//public: void CGameMode::MakeCorpse3d(float, float, float, const char *, int, float, struct vector3d, float);
	public: void CGameMode::MakeGrannyCorpse3d(float cx, float cy, float cz, float fRot, const char* Gr2Name);
	//public: void CGameMode::MakePotionEffect(int, unsigned long);
	//public: void CGameMode::MakeNumEffect(struct vector3d &, int, unsigned long, unsigned long);
	//public: CMsgEffect* CGameMode::MakeMissEffect(struct vector3d &, unsigned long, unsigned long);
	//public: CMsgEffect* CGameMode::MakeEmotion(struct vector3d &, int, unsigned long);
	//public: CMsgEffect* CGameMode::MakeMsgEffect(enum MAKE_MSG_EFFECT_TYPE, struct vector3d &, unsigned long);
	public: void CGameMode::MakeEmblemWnd(CGameActor* theActor, int gdid, int emblemVer);
	public: void CGameMode::InvalidatePlayerGage(void);
	public: void CGameMode::HideCheck(void);
	//public: void DrawCompass();
	public: void CGameMode::DrawMiniMap(void);
	//public: void CGameMode::DrawActorsOnMiniMap(const struct UVRECT &);
	//public: void CGameMode::DrawCompassOnMiniMap(const struct UVRECT &);
	public: void CGameMode::DrawPKRanking(void);
	//public: void CGameMode::DrawPKZoneTime();
	public: void CGameMode::DrawTime(unsigned long timeTick, int showType);
	//public: void CGameMode::DrawTimeAttack();
	//public: void CGameMode::ShowTime();
	//public: void DrawArenaRemainTime();
	public: void CGameMode::DrawDragImage(void);
	public: void CGameMode::DrawIllustImage(void);
	public: void CGameMode::DrawUseSkillLevelNumber(void);
	//public: void CGameMode::RotatePoint(float, float, float &, float &, int);
	public: const char* CGameMode::GetDragItemName(void);
	public: DRAG_INFO* CGameMode::GetDragInfo(void);
	public: ENUM_DRAGTYPE GetDragType();
	public: int CGameMode::CanRotateView(void);
	public: int GetNumDragItem();
	public: int GetDragItemIndex();
	//public: struct ChatRoomInfo * GetLastChatroomInfo();
	//public: unsigned long CGameMode::GetAid(const char *);
	public: void CGameMode::ProcessTalkType(int val1, int val2);
	public: void CGameMode::ProcessLockOnMouse(void);
	public: void CGameMode::ProcessAssignAID(void);
	public: int CGameMode::ProcessActorPick(int processType, CActorPickInfo* actorInfo);
	public: void CGameMode::ProcessPcPick(int& processType, CActorPickInfo* actorInfo, CGameActor* pc);
	public: void CGameMode::ProcessMonsterPick(int& processType, CActorPickInfo* actorInfo, CGameActor* monster);
	public: void CGameMode::WriteNameBalloonPosToReg(void);
	public: void CGameMode::InitNameBalloonPosFromReg(void);
	public: bool CGameMode::IsReqPickupItemNaid(unsigned long itemNaid);
	public: void CGameMode::RemovePickupItemNaid(unsigned long itemNaid);
	public: void CGameMode::AddPickupItemNaid(unsigned long itemNaid);
	public: void CGameMode::ProcessPlayWave(void);
	public: void CGameMode::ResetDrag(void);
	//public: void CGameMode::PrintDebugString();
	//public: int GetSkillAttackRange();
	//public: int IsPlayerDead();
	public: void CGameMode::SetWaitUseItemAck(int wait);
	public: void CGameMode::Zc_Notify_Standentry(const char* buf);
	public: void CGameMode::Zc_Notify_Newentry(const char* buf);
	public: void CGameMode::Zc_Refuse_Quit(const char* buf);
	public: void CGameMode::Zc_Notify_Move(const char* buf);
	public: void CGameMode::Zc_Notify_Playermove(const char* buf);
	public: void CGameMode::Zc_Notify_Act(const char* buf);
	public: void CGameMode::Zc_Notify_Playerchat(const char* buf);
	public: void CGameMode::Zc_Notify_Chat(const char* buf);
	public: void CGameMode::Zc_Notify_Time(const char* buf);
	public: void CGameMode::Zc_Npcack_Mapmove(const char* buf);
	public: void CGameMode::Zc_Npcack_Enable(const char* buf);
	public: void CGameMode::Zc_Npcack_Servermove(const char* buf);
	public: void CGameMode::Zc_Accept_Enter(const char* buf);
	public: void CGameMode::Zc_Ack_Reqname(const char* buf);
	public: void CGameMode::Zc_Broadcast(const char* buf);
	public: void CGameMode::Zc_Whisper(const char* buf);
	public: void CGameMode::Zc_Ack_Whisper(const char* buf);
	public: void CGameMode::Zc_Change_Direction(const char* buf);
	public: void CGameMode::Zc_Ack_Disconnect_Character(const char* buf);
	public: void CGameMode::Zc_Item_Entry(const char* buf);
	public: void CGameMode::Zc_Item_Pickup_Ack(const char* buf);
	public: void CGameMode::Zc_Item_Disappear(const char* buf);
	public: void CGameMode::Zc_Notify_Actentry(const char* buf);
	public: void CGameMode::Zc_Notify_Moveentry(const char* buf);
	public: void CGameMode::Zc_Notify_Vanish(const char* buf);
	public: void CGameMode::Sc_Notify_Ban(const char* buf);
	public: void CGameMode::Zc_Accept_Quit(const char* buf);
	public: void CGameMode::Zc_Normal_Itemlist(const char* buf);
	public: void CGameMode::Zc_Normal_Itemlist2(const char* buf);
	public: void CGameMode::Zc_Equipment_Itemlist(const char* buf);
	public: void CGameMode::Zc_Item_Fall_Entry(const char* buf);
	public: void CGameMode::Zc_Stopmove(const char* buf);
	public: void CGameMode::Zc_Par_Change(const char* buf);
	public: void CGameMode::Zc_Longpar_Change(const char* buf);
	public: void CGameMode::Zc_Use_Item_Ack(const char* buf);
	public: void CGameMode::Zc_Req_Wear_Equip_Ack(const char* buf);
	public: void CGameMode::Zc_Req_Takeoff_Equip_Ack(const char* buf);
	public: void CGameMode::Zc_Item_Throw_Ack(const char* buf);
	public: void CGameMode::Zc_Notify_Standentry_Npc(const char* buf);
	public: void CGameMode::Zc_Say_Dialog(const char* buf);
	public: void CGameMode::Zc_Wait_Dialog(const char* buf);
	public: void CGameMode::Zc_Close_Dialog(const char* buf);
	public: void CGameMode::Zc_Menu_List(const char* buf);
	public: void CGameMode::Zc_Restart_Ack(const char* buf);
	public: void CGameMode::Zc_Status_Change_Ack(const char* buf);
	public: void CGameMode::Zc_Status(const char* buf);
	public: void CGameMode::Zc_Status_Change(const char* buf);
	public: void CGameMode::Zc_Emotion(const char* buf);
	public: void CGameMode::Zc_User_Count(const char* buf);
	public: void CGameMode::Zc_Sprite_Change(const char* buf);
	public: void CGameMode::Zc_Select_Dealtype(const char* buf);
	public: void CGameMode::Zc_Pc_Purchase_Itemlist(const char* buf);
	public: void CGameMode::Zc_Pc_Sell_Itemlist(const char* buf);
	public: void CGameMode::Zc_Pc_Purchase_Result(const char* buf);
	public: void CGameMode::Zc_Pc_Sell_Result(const char* buf);
	public: void CGameMode::Zc_Setting_Whisper_Pc(const char* buf);
	public: void CGameMode::Zc_Setting_Whisper_State(const char* buf);
	public: void CGameMode::Zc_Whisper_List(const char* buf);
	public: void CGameMode::Zc_Ack_Create_Chatroom(const char* buf);
	public: void CGameMode::Zc_Room_Newentry(const char* buf);
	public: void CGameMode::Zc_Destroy_Room(const char* buf);
	public: void CGameMode::Zc_Enter_Room(const char* buf);
	public: void CGameMode::Zc_Member_Newentry(const char* buf);
	public: void CGameMode::Zc_Member_Exit(const char* buf);
	public: void CGameMode::Zc_Role_Change(const char* buf);
	public: void CGameMode::Zc_Refuse_Enter_Room(const char* buf);
	public: void CGameMode::Zc_Change_Chatroom(const char* buf);
	public: void CGameMode::Zc_Req_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Req_Exchange_Item2(const char* buf);
	public: void CGameMode::Zc_Ack_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Ack_Exchange_Item2(const char* buf);
	public: void CGameMode::Zc_Add_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Ack_Add_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Conclude_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Cancel_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Exec_Exchange_Item(const char* buf);
	public: void CGameMode::Zc_Store_Normal_Itemlist(const char* buf);
	public: void CGameMode::Zc_Store_Normal_Itemlist2(const char* buf);
	public: void CGameMode::Zc_Store_Equipment_Itemlist(const char* buf);
	public: void CGameMode::Zc_Add_Item_To_Store(const char* buf);
	public: void CGameMode::Zc_Delete_Item_From_Store(const char* buf);
	public: void CGameMode::Zc_Close_Store(const char* buf);
	public: void CGameMode::Zc_Notify_Storeitem_Countinfo(const char* buf);
	public: void CGameMode::Zc_Ack_Make_Group(const char* buf);
	public: void CGameMode::Zc_Group_List(const char* buf);
	public: void CGameMode::Zc_Ack_Req_Join_Group(const char* buf);
	public: void CGameMode::Zc_Req_Join_Group(const char* buf);
	public: void CGameMode::Zc_Req_Couple(const char* buf);
	public: void CGameMode::Zc_Req_Baby(const char* buf);
	public: void CGameMode::Zc_Add_Member_To_Group(const char* buf);
	public: void CGameMode::Zc_Add_Member_To_Group2(const char* buf);
	public: void CGameMode::Zc_Delete_Member_From_Group(const char* buf);
	public: void CGameMode::Zc_Notify_Hp_To_Groupm(const char* buf);
	public: void CGameMode::Zc_Notify_Position_To_Groupm(const char* buf);
	public: void CGameMode::Zc_Notify_Chat_Party(const char* buf);
	public: void CGameMode::Zc_Exchangeitem_Undo(const char* buf);
	public: void CGameMode::Zc_Mvp_Getting_Item(const char* buf);
	public: void CGameMode::Zc_Mvp_Getting_Special_Exp(const char* buf);
	public: void CGameMode::Zc_Mvp(const char* buf);
	public: void CGameMode::Zc_Throw_Mvpitem(const char* buf);
	public: void CGameMode::Zc_Skillinfo_Update(const char* buf);
	public: void CGameMode::Zc_Skillinfo_List(const char* buf);
	public: void CGameMode::Zc_Ack_Touseskill(const char* buf);
	public: void CGameMode::Zc_Add_Skill(const char* buf);
	public: void CGameMode::Zc_Notify_Skill(const char* buf);
	public: void CGameMode::Zc_Notify_Groundskill(const char* buf);
	public: void CGameMode::Zc_State_Change(const char* buf);
	public: void CGameMode::Zc_Use_Skill(const char* buf);
	public: void CGameMode::Zc_Skill_Entry(const char* buf);
	public: void CGameMode::Zc_Skill_Disappear(const char* buf);
	public: void CGameMode::Zc_Notify_Act_Position(const char* buf);
	public: void CGameMode::Zc_Notify_Skill_Position(const char* buf);
	public: void CGameMode::Zc_Warplist(const char* buf);
	public: void CGameMode::Zc_Ack_Remember_Warppoint(const char* buf);
	public: void CGameMode::Zc_Notify_Cartitem_Countinfo(const char* buf);
	public: void CGameMode::Zc_Cart_Normal_Itemlist(const char* buf);
	public: void CGameMode::Zc_Cart_Normal_Itemlist2(const char* buf);
	public: void CGameMode::Zc_Cart_Equipment_Itemlist(const char* buf);
	public: void CGameMode::Zc_Cartoff(const char* buf);
	public: void CGameMode::Zc_Ack_Additem_To_Cart(const char* buf);
	public: void CGameMode::Zc_Add_Item_To_Cart(const char* buf);
	public: void CGameMode::Zc_Delete_Item_From_Cart(const char* buf);
	public: void CGameMode::Zc_openstore(const char* buf);
	public: void CGameMode::Zc_store_entry(const char* buf);
	public: void CGameMode::Zc_disappear_entry(const char* buf);
	public: void CGameMode::Zc_pc_purchase_itemlist_frommc(const char* buf);
	public: void CGameMode::Zc_pc_purchase_result_frommc(const char* buf);
	public: void CGameMode::Zc_pc_purchase_myitemlist(const char* buf);
	public: void CGameMode::Zc_deleteitem_from_mcstore(const char* buf);
	public: void CGameMode::Zc_attack_failure_for_distance(const char* buf);
	public: void CGameMode::Zc_attack_range(const char* buf);
	public: void CGameMode::Zc_action_failure(const char* buf);
	public: void CGameMode::Zc_equip_arrow(const char* buf);
	public: void CGameMode::Zc_recovery(const char* buf);
	public: void CGameMode::Zc_useskill_ack(const char* buf);
	public: void CGameMode::Zc_groupinfo_change(const char* buf);
	public: void CGameMode::Zc_couplestatus(const char* buf);
	public: void CGameMode::Zc_open_editdlg(const char* buf);
	public: void CGameMode::Zc_compass(const char* buf);
	public: void CGameMode::Zc_show_image(const char* buf);
	public: void CGameMode::Zc_show_image2(const char* buf);
	public: void CGameMode::Zc_autorun_skill(const char* buf);
	public: void CGameMode::Zc_resurrection(const char* buf);
	public: void CGameMode::Zc_guild_emblem_img(const char* buf);
	public: void CGameMode::Zc_guild_info(const char* buf);
	public: void CGameMode::Zc_myguild_basic_info(const char* buf);
	public: void CGameMode::Zc_ack_guild_menuinterface(const char* buf);
	public: void CGameMode::Zc_position_id_name_info(const char* buf);
	public: void CGameMode::Zc_ack_req_change_members(const char* buf);
	public: void CGameMode::Zc_membermgr_info(const char* buf);
	public: void CGameMode::Zc_ack_open_member_info(const char* buf);
	public: void CGameMode::Zc_ack_leave_guild(const char* buf);
	public: void CGameMode::Zc_ack_ban_guild(const char* buf);
	public: void CGameMode::Zc_ack_disorganize_guild_result(const char* buf);
	public: void CGameMode::Zc_ack_disorganize_guild(const char* buf);
	public: void CGameMode::Zc_position_info(const char* buf);
	public: void CGameMode::Zc_ban_list(const char* buf);
	public: void CGameMode::Zc_other_guild_list(const char* buf);
	public: void CGameMode::Zc_result_make_guild(const char* buf);
	public: void CGameMode::Zc_ack_req_join_guild(const char* buf);
	public: void CGameMode::Zc_req_join_guild(const char* buf);
	public: void CGameMode::Zc_update_gdid(const char* buf);
	public: void CGameMode::Zc_update_charstat(const char* buf);
	public: void CGameMode::Zc_update_charstat2(const char* buf);
	public: void CGameMode::Zc_ack_give_manner_point(const char* buf);
	public: void CGameMode::Zc_notify_manner_point_given(const char* buf);
	public: void CGameMode::Zc_guild_notice(const char* buf);
	public: void CGameMode::Zc_guild_chat(const char* buf);
	public: void CGameMode::Zc_req_ally_guild(const char* buf);
	public: void CGameMode::Zc_ack_req_ally_guild(const char* buf);
	public: void CGameMode::Zc_ack_change_guild_positioninfo(const char* buf);
	public: void CGameMode::Zc_itemidentify_list(const char* buf);
	public: void CGameMode::Zc_ack_itemidentify(const char* buf);
	public: void CGameMode::Zc_itemcomposition_list(const char* buf);
	public: void CGameMode::Zc_ack_itemcomposition(const char* buf);
	public: void CGameMode::Zc_ack_req_hostile_guild(const char* buf);
	public: void CGameMode::Zc_member_add(const char* buf);
	public: void CGameMode::Zc_delete_related_guild(const char* buf);
	public: void CGameMode::Zc_add_related_guild(const char* buf);
	//public: void Zc_Notify_Position_To_Guildm(const char *);
	//public: void Zc_Guild_Member_Map_Change(const char *);
	public: void CGameMode::Zc_ack_itemrefining(const char* buf);
	public: void CGameMode::Zc_notify_mapinfo(const char* buf);
	public: void CGameMode::Zc_ack_req_disconnect(const char* buf);
	public: void CGameMode::Zc_monster_info(const char* buf);
	public: void CGameMode::Zc_makable_item_list(const char* buf);
	public: void CGameMode::Zc_ack_req_itemmaking(const char* buf);
	public: void CGameMode::Zc_talkbox_chat_contents(const char* buf);
	public: void CGameMode::Zc_update_mapinfo(const char* buf);
	public: void CGameMode::Zc_Ack_Reqname_bygid(const char* buf);
	public: void CGameMode::Zc_Ack_Reqnameall(const char* buf);
	public: void CGameMode::Zc_Msg_State_Change(const char* buf);
	public: void CGameMode::Zc_Notify_Mapproperty(const char* buf);
	public: void CGameMode::Zc_Notify_Ranking(const char* buf);
	public: void CGameMode::Zc_Notify_Effect(const char* buf);
	public: void CGameMode::Zc_Notify_Effect2(const char* buf);
	public: void CGameMode::Zc_Start_Capture(const char* buf);
	public: void CGameMode::Zc_Start_Couple(const char* buf);
	public: void CGameMode::Zc_Start_Baby(const char* buf);
	public: void CGameMode::Zc_CoupleName(const char* buf);
	public: void CGameMode::Zc_Congratulation(const char* buf);
	public: void CGameMode::Zc_TryCapture_Monster(const char* buf);
	public: void CGameMode::Zc_Change_Pet_Status(const char* buf);
	public: void CGameMode::Zc_PetEgg_List(const char* buf);
	public: void CGameMode::Zc_Property_Pet(const char* buf);
	public: void CGameMode::Zc_Feed_Pet(const char* buf);
	public: void CGameMode::Zc_Pet_Act(const char* buf);
	public: void CGameMode::Zc_Par_Change_User(const char* buf);
	public: void CGameMode::Zc_Skill_Update(const char* buf);
	public: void CGameMode::Zc_MakingArrowList(const char* buf);
	public: void CGameMode::Zc_ChangeCartList(const char* buf);
	public: void CGameMode::Zc_NpcSpriteChange(const char* buf);
	public: void CGameMode::Zc_ShowDigit(const char* buf);
	public: void CGameMode::Zc_ChangeGuild(const char* buf);
	public: void CGameMode::Zc_GuildInfo2(const char* buf);
	public: void CGameMode::Zc_GuildZenyAck(const char* buf);
	public: void CGameMode::Zc_Dispel(const char* buf);
	public: void CGameMode::Zc_Reply_RemainTime(const char* buf);
	public: void CGameMode::Zc_Info_RemainTime(const char* buf);
	public: void CGameMode::Zc_Broadcast2(const char* buf);
	public: void CGameMode::Zc_GuildSkillInfo(const char* buf);
	public: void CGameMode::Zc_AddItemToStore2(const char* buf);
	public: void CGameMode::Zc_Add_Item_To_Cart2(const char* buf);
	public: void CGameMode::Sc_Ack_Encryption(const char* buf);
	public: void CGameMode::Zc_Use_Item_Ack2(const char* buf);
	public: void CGameMode::Zc_Skill_Entry2(const char* buf);
	public: void CGameMode::Zc_Monster_Talk(const char* buf);
	public: void CGameMode::Zc_AutoSpellList(const char* buf);
	public: void CGameMode::Zc_DevotionList(const char* buf);
	public: void CGameMode::Zc_Spirits(const char* buf);
	public: void CGameMode::Zc_Spirits2(const char* buf);
	public: void CGameMode::Zc_BladeStop(const char* buf);
	public: void CGameMode::Zc_Sound(const char* buf);
	public: void CGameMode::Zc_Open_EditDlgStr(const char* buf);
	public: void CGameMode::Zc_ComboDelay(const char* buf);
	public: void CGameMode::Zc_Notify_Mapproperty2(const char* buf);
	public: void CGameMode::Zc_Sprite_Change2(const char* buf);
	public: void CGameMode::Zc_Notify_Newentry2(const char* buf);
	public: void CGameMode::Zc_Notify_Standentry2(const char* buf);
	public: void CGameMode::Zc_Notify_Moveentry2(const char* buf);
	public: void CGameMode::GameModeShowEFST(int GID, int effectState, int clevel, int showEFST);
	public: void CGameMode::Zc_Notify_Skill2(const char* buf);
	public: void CGameMode::Zc_Ack_AccountName(const char* buf);
	public: void CGameMode::WriteChat(char* txt);
	//public: void CGameMode::MakeChatFile();
	public: void CGameMode::CloseChatFile(void);
	//public: void CGameMode::SetAutoFollowTime(unsigned long, unsigned long);
	private: virtual void CGameMode::OnChangeState(int state);
	//private: void ProcessNeverDie();
	private: void CGameMode::PollNetworkStatus(void);
	//private: void CGameMode::OnProcessState(int);
	private: void CGameMode::DeleteCompassPos(int id);
	private: void CGameMode::MakeNameBalloonTextWindow(UIWindow** window);
	private: void CGameMode::MoveBalloonTextWindow(UIWindow* window, CRenderObject* renderObject);
	private: void CGameMode::ProcessAutoFollow(void);
	//private: void CGameMode::MonsterTalk(CGameActor*, int, int, int, unsigned long);
	//private: void DrawMinimapTriangle(float, float, float, unsigned long);
	//private: void SetMemberVisibleState(unsigned long, int);
	//private: int CGameMode::IsExceptionState(int);

	/// @custom
	public: void CGameMode::SetArea(int areaLeft, int areaRight, int areaTop, int areaBottom) { m_areaLeft = areaLeft; m_areaRight = areaRight; m_areaTop = areaTop; m_areaBottom = areaBottom; }

private:
	static hook_method<void (CGameMode::*)(const char* modeName)> CGameMode::_OnInit;
	static hook_method<int (CGameMode::*)(void)> CGameMode::_OnRun;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_OnExit;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_OnUpdate;
	static hook_method<int (CGameMode::*)(int messageId, int val1, int val2, int val3)> CGameMode::_SendMsg;
	static hook_method<CWorld* (CGameMode::*)(void)> CGameMode::_GetWorld;
	static hook_method<CView* (CGameMode::*)(void)> CGameMode::_GetView;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ChatDori;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_Initialize;
	static hook_method<void (CGameMode::*)(int fogOn)> CGameMode::_MakeFog;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_SetCamera;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_SaveCamera;
	static hook_method<void (CGameMode::*)(CGameObject* gameObject)> CGameMode::_PushGameObject;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_RemoveGameActorAllAndMake;
	static hook_method<void (CGameMode::*)(vector2d& pos)> CGameMode::_MakeMousePointer;
	static hook_method<void (CGameMode::*)(CActorPickInfo* actorInfo, int processType)> CGameMode::_MakeMenu;
	static hook_method<void (CGameMode::*)(CActorPickInfo* actorInfo, int processType)> CGameMode::_ProcessMouseSnap;
	static hook_method<void (CGameMode::*)(int processType)> CGameMode::_ProcessWheel;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessRBtn;
	static hook_method<int (CGameMode::*)(int processType)> CGameMode::_ProcessGroundPick;
	static hook_method<bool (CGameMode::*)(void)> CGameMode::_AttackSkillOverWeightMessage;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessReqEmblem;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessNameWaitingTimer;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessPeriodicalJobs;
	static hook_method<void (CGameMode::*)(float cx, float cz, int& sx, int& sy, int& cellX, int& cellY)> CGameMode::_GetServerCoor;
	static hook_method<void (CGameMode::*)(float cx, float cz, int& sx, int& sy)> CGameMode::_GetServerCoor2;
	static hook_method<void (CGameMode::*)(int sx, int sy, int subX, int subY, float& cx, float& cz)> CGameMode::_GetClientCoor;
	static hook_method<void (CGameMode::*)(int sx, int sy, float& cx, float& cz)> CGameMode::_GetClientCoor2;
	static hook_method<void (CGameMode::*)(int& sx, int& sy, int& dx, int& dy)> CGameMode::_ConvertToNoRedCell;
	static hook_method<void (CGameMode::*)(float x1, float y1, float x2, float y2, int& dx, int& dy, int numCell)> CGameMode::_ConvertToNumCellCloseAndFindNoRedCell;
	static hook_method<bool (CGameMode::*)(int& sx, int& sy, int& dx, int& dy, int numCell)> CGameMode::_IsInsideCell;
	static hook_method<bool (CGameMode::*)(int x, int y)> CGameMode::_IsRedCell;
	static hook_method<bool (CGameMode::*)(int x, int y)> CGameMode::_IsValidCell;
	static hook_method<bool (CGameMode::*)(int sx, int sy, int cellX, int cellY, int dx, int dy)> CGameMode::_CanFindPath;
	static hook_method<bool (CGameMode::*)(int& dx, int& dy)> CGameMode::_GetClosestValidCell;
	static hook_method<bool (CGameMode::*)(int x, int y)> CGameMode::_IsRegisterCell;
	static hook_method<void (CGameMode::*)(float cx, float cy, int color)> CGameMode::_ShowMousePointer;
	static hook_method<void (CGameMode::*)(int time)> CGameMode::_HideMousePointer;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessInput;
	static hook_method<bool (CGameMode::*)(int& dx, int& dy)> CGameMode::_GetGroundAttrPos;
	static hook_method<void (CGameMode::*)(unsigned long aid)> CGameMode::_RemoveActorNameRequestTimer;
	static hook_method<const NamePair& (CGameMode::*)(unsigned long aid)> CGameMode::_GetActorName;
	static hook_method<void (CGameMode::*)(unsigned long aid)> CGameMode::_RequestActorName;
	static hook_method<const NamePair& (CGameMode::*)(unsigned long gid)> CGameMode::_GetActorNameByGID;
	static hook_method<void (CGameMode::*)(unsigned long aid)> CGameMode::_MakeNameBalloon;
	static hook_method<void (CGameMode::*)(CGameActor* theActor)> CGameMode::_MakeActorNameBalloon;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessNameBalloon;
	static hook_method<CGameActor* (CGameMode::*)(int job)> CGameMode::_NewNpc;
	static hook_method<void (CGameMode::*)(vector3d* pos, int effectId, int lastTime, int F1)> CGameMode::_PlaceEffect;
	static hook_method<void (CGameMode::*)(vector3d& sPos, unsigned long targetGid, float hideTime, int job)> CGameMode::_MakeArrowEffect;
	static hook_method<void (CGameMode::*)(unsigned long targetGid, int job, float hideTime)> CGameMode::_MakeMandraAttackEffect;
	static hook_method<void (CGameMode::*)(float cx, float cy, float cz, const char* actName, const char* sprName, int action, int motion, float roty)> CGameMode::_MakeCorpse;
	static hook_method<void (CGameMode::*)(float cx, float cy, float cz, float fRot, const char* Gr2Name)> CGameMode::_MakeGrannyCorpse3d;
	static hook_method<void (CGameMode::*)(CGameActor* theActor, int gdid, int emblemVer)> CGameMode::_MakeEmblemWnd;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_InvalidatePlayerGage;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_HideCheck;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_DrawMiniMap;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_DrawPKRanking;
	static hook_method<void (CGameMode::*)(unsigned long timeTick, int showType)> CGameMode::_DrawTime;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_DrawDragImage;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_DrawIllustImage;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_DrawUseSkillLevelNumber;
	static hook_method<const char* (CGameMode::*)(void)> CGameMode::_GetDragItemName;
	static hook_method<DRAG_INFO* (CGameMode::*)(void)> CGameMode::_GetDragInfo;
	static hook_method<int (CGameMode::*)(void)> CGameMode::_CanRotateView;
	static hook_method<void (CGameMode::*)(int val1, int val2)> CGameMode::_ProcessTalkType;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessLockOnMouse;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessAssignAID;
	static hook_method<int (CGameMode::*)(int processType, CActorPickInfo* actorInfo)> CGameMode::_ProcessActorPick;
	static hook_method<void (CGameMode::*)(int& processType, CActorPickInfo* actorInfo, CGameActor* pc)> CGameMode::_ProcessPcPick;
	static hook_method<void (CGameMode::*)(int& processType, CActorPickInfo* actorInfo, CGameActor* monster)> CGameMode::_ProcessMonsterPick;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_WriteNameBalloonPosToReg;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_InitNameBalloonPosFromReg;
	static hook_method<bool (CGameMode::*)(unsigned long itemNaid)> CGameMode::_IsReqPickupItemNaid;
	static hook_method<void (CGameMode::*)(unsigned long itemNaid)> CGameMode::_RemovePickupItemNaid;
	static hook_method<void (CGameMode::*)(unsigned long itemNaid)> CGameMode::_AddPickupItemNaid;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessPlayWave;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ResetDrag;
	static hook_method<void (CGameMode::*)(int wait)> CGameMode::_SetWaitUseItemAck;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Standentry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Newentry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Refuse_Quit;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Move;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Playermove;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Act;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Playerchat;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Chat;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Time;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Npcack_Mapmove;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Npcack_Enable;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Npcack_Servermove;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Accept_Enter;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Reqname;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Broadcast;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Change_Direction;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Disconnect_Character;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Item_Entry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Item_Pickup_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Item_Disappear;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Actentry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Moveentry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Vanish;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Sc_Notify_Ban;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Accept_Quit;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Normal_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Normal_Itemlist2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Equipment_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Item_Fall_Entry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Stopmove;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Par_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Longpar_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Use_Item_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Wear_Equip_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Takeoff_Equip_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Item_Throw_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Standentry_Npc;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Say_Dialog;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Wait_Dialog;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Close_Dialog;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Menu_List;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Restart_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Status_Change_Ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Status;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Status_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Emotion;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_User_Count;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Sprite_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Select_Dealtype;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Pc_Purchase_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Pc_Sell_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Pc_Purchase_Result;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Pc_Sell_Result;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Setting_Whisper_Pc;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Setting_Whisper_State;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Whisper_List;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Create_Chatroom;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Room_Newentry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Destroy_Room;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Enter_Room;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Member_Newentry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Member_Exit;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Role_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Refuse_Enter_Room;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Change_Chatroom;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Exchange_Item2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Exchange_Item2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Add_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Conclude_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Cancel_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Exec_Exchange_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Store_Normal_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Store_Normal_Itemlist2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Store_Equipment_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Item_To_Store;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Delete_Item_From_Store;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Close_Store;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Storeitem_Countinfo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Make_Group;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Group_List;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Req_Join_Group;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Join_Group;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Couple;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Req_Baby;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Member_To_Group;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Member_To_Group2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Delete_Member_From_Group;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Hp_To_Groupm;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Position_To_Groupm;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Chat_Party;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Exchangeitem_Undo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Mvp_Getting_Item;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Mvp_Getting_Special_Exp;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Mvp;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Throw_Mvpitem;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Skillinfo_Update;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Skillinfo_List;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Touseskill;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Skill;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Skill;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Groundskill;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_State_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Use_Skill;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Skill_Entry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Skill_Disappear;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Act_Position;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Skill_Position;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Warplist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Remember_Warppoint;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Cartitem_Countinfo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Cart_Normal_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Cart_Normal_Itemlist2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Cart_Equipment_Itemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Cartoff;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Additem_To_Cart;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Item_To_Cart;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Delete_Item_From_Cart;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_openstore;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_store_entry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_disappear_entry;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_pc_purchase_itemlist_frommc;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_pc_purchase_result_frommc;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_pc_purchase_myitemlist;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_deleteitem_from_mcstore;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_attack_failure_for_distance;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_attack_range;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_action_failure;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_equip_arrow;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_recovery;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_useskill_ack;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_groupinfo_change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_couplestatus;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_open_editdlg;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_compass;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_show_image;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_show_image2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_autorun_skill;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_resurrection;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_guild_emblem_img;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_guild_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_myguild_basic_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_guild_menuinterface;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_position_id_name_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_req_change_members;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_membermgr_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_open_member_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_leave_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_ban_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_disorganize_guild_result;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_disorganize_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_position_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ban_list;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_other_guild_list;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_result_make_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_req_join_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_req_join_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_update_gdid;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_update_charstat;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_update_charstat2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_give_manner_point;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_notify_manner_point_given;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_guild_notice;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_guild_chat;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_req_ally_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_req_ally_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_change_guild_positioninfo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_itemidentify_list;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_itemidentify;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_itemcomposition_list;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_itemcomposition;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_req_hostile_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_member_add;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_delete_related_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_add_related_guild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_itemrefining;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_notify_mapinfo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_req_disconnect;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_monster_info;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_makable_item_list;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ack_req_itemmaking;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_talkbox_chat_contents;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_update_mapinfo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Reqname_bygid;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_Reqnameall;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Msg_State_Change;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Mapproperty;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Ranking;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Effect;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Effect2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Start_Capture;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Start_Couple;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Start_Baby;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_CoupleName;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Congratulation;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_TryCapture_Monster;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Change_Pet_Status;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_PetEgg_List;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Property_Pet;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Feed_Pet;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Pet_Act;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Par_Change_User;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Skill_Update;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_MakingArrowList;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ChangeCartList;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_NpcSpriteChange;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ShowDigit;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ChangeGuild;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_GuildInfo2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_GuildZenyAck;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Dispel;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Reply_RemainTime;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Info_RemainTime;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Broadcast2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_GuildSkillInfo;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_AddItemToStore2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Add_Item_To_Cart2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Sc_Ack_Encryption;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Use_Item_Ack2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Skill_Entry2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Monster_Talk;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_AutoSpellList;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_DevotionList;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Spirits;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Spirits2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_BladeStop;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Sound;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Open_EditDlgStr;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_ComboDelay;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Mapproperty2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Sprite_Change2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Newentry2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Standentry2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Moveentry2;
	static hook_method<void (CGameMode::*)(int GID, int effectState, int clevel, int showEFST)> CGameMode::_GameModeShowEFST;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Notify_Skill2;
	static hook_method<void (CGameMode::*)(const char* buf)> CGameMode::_Zc_Ack_AccountName;
	static hook_method<void (CGameMode::*)(char* txt)> CGameMode::_WriteChat;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_CloseChatFile;
	static hook_method<void (CGameMode::*)(int state)> CGameMode::_OnChangeState;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_PollNetworkStatus;
	static hook_method<void (CGameMode::*)(int id)> CGameMode::_DeleteCompassPos;
	static hook_method<void (CGameMode::*)(UIWindow** window)> CGameMode::_MakeNameBalloonTextWindow;
	static hook_method<void (CGameMode::*)(UIWindow* window, CRenderObject* renderObject)> CGameMode::_MoveBalloonTextWindow;
	static hook_method<void (CGameMode::*)(void)> CGameMode::_ProcessAutoFollow;
};
